package com.umariana.ClinicaVeterinaria.InterfazGrafica;

import java.awt.BorderLayout;
import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.border.TitledBorder;
import javax.swing.border.EtchedBorder;

import com.umariana.ClinicaVeterinaria.mundo.Propietario;

import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.sql.SQLException;

public class DialogoPagoFactura extends JDialog implements ActionListener , KeyListener{

	/**
	 * serializable
	 */
	private static final long serialVersionUID = 1L;
	/**
	 * panel de conetenido
	 */
	private final JPanel contentPanel = new JPanel();
	/**
	 * COMANDO PARA PAGAR
	 **/
	private final static String PAGAR = "PAGAR";
	/**
	 * COMANDO PARA CANCELAR
	 */
	private final static String CANCELAR ="CANCELAR";
	
	/**
	 * nombre del propietario
	 */
	private JTextField txtNombres;
	/**
	 * apellidos del propietrio
	 */
	private JTextField txtApellidos;
	/**
	 * identificacion del propietario
	 */
	private JTextField txtIdentificacion;
	/**
	 * saldo del la cuenta
	 */
	private JTextField txtSalsdo;
	/**
	 * iva
	 */
	private JTextField txtIva;
	/**
	 * total pagar
	 */
	private JTextField txtTotal;
	/**
	 * valor a pagar
	 */
	private JTextField txtValor;
	/**
	 * relacion con el frame principal
	 */
	private InterfazClinica principal;



	/**
	 * Create the dialog.
	 */
	public DialogoPagoFactura(InterfazClinica ventana , String pIdentificacion) {
		super(ventana,true);
		principal=ventana;
		setTitle("Cancelar Cuenta");
		setBounds(100, 100, 543, 412);
		getContentPane().setLayout(new BorderLayout());
		contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
		getContentPane().add(contentPanel, BorderLayout.CENTER);
		contentPanel.setLayout(null);
		{
			JPanel panelInformacionPropietario = new JPanel();
			panelInformacionPropietario.setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null), "Informacion Propietario", TitledBorder.LEADING, TitledBorder.TOP, null, null));
			panelInformacionPropietario.setBounds(10, 11, 507, 111);
			contentPanel.add(panelInformacionPropietario);
			panelInformacionPropietario.setLayout(null);
			{
				JLabel lblNombres = new JLabel("Nombres");
				lblNombres.setBounds(10, 21, 65, 14);
				panelInformacionPropietario.add(lblNombres);
			}
			{
				JLabel lblApellidos = new JLabel("Apellidos");
				lblApellidos.setBounds(10, 58, 65, 14);
				panelInformacionPropietario.add(lblApellidos);
			}
			{
				JLabel lblCedula = new JLabel("Cedula");
				lblCedula.setBounds(10, 83, 65, 14);
				panelInformacionPropietario.add(lblCedula);
			}
			{
				txtNombres = new JTextField();
				txtNombres.setEditable(false);
				txtNombres.setBounds(85, 18, 412, 20);
				panelInformacionPropietario.add(txtNombres);
				txtNombres.setColumns(10);
			}
			{
				txtApellidos = new JTextField();
				txtApellidos.setEditable(false);
				txtApellidos.setBounds(85, 49, 412, 20);
				panelInformacionPropietario.add(txtApellidos);
				txtApellidos.setColumns(10);
			}
			{
				txtIdentificacion = new JTextField();
				txtIdentificacion.setEditable(false);
				txtIdentificacion.setBounds(85, 80, 412, 20);
				panelInformacionPropietario.add(txtIdentificacion);
				txtIdentificacion.setColumns(10);
			}
		}
		{
			JLabel lblSaldo = new JLabel("Saldo: ");
			lblSaldo.setBounds(86, 146, 74, 14);
			contentPanel.add(lblSaldo);
		}
		{
			JLabel lblIva = new JLabel("Iva: ");
			lblIva.setBounds(86, 190, 46, 14);
			contentPanel.add(lblIva);
		}
		{
			txtSalsdo = new JTextField();
			txtSalsdo.setEditable(false);
			txtSalsdo.setBounds(135, 143, 137, 20);
			contentPanel.add(txtSalsdo);
			txtSalsdo.setColumns(10);
		}
		{
			txtIva = new JTextField();
			txtIva.setEditable(false);
			txtIva.setBounds(135, 187, 137, 20);
			contentPanel.add(txtIva);
			txtIva.setColumns(10);
		}
		{
			JLabel lblTotal = new JLabel("Total: ");
			lblTotal.setFont(new Font("Tahoma", Font.BOLD, 17));
			lblTotal.setBounds(58, 231, 74, 30);
			contentPanel.add(lblTotal);
		}
		{
			txtTotal = new JTextField();
			txtTotal.setEditable(false);
			txtTotal.setBounds(135, 239, 137, 20);
			contentPanel.add(txtTotal);
			txtTotal.setColumns(10);
		}
		{
			JLabel lblValor = new JLabel("Valor: ");
			lblValor.setBounds(86, 298, 46, 14);
			contentPanel.add(lblValor);
		}
		{
			txtValor = new JTextField();
			txtValor.addKeyListener(this);
			txtValor.setBounds(135, 295, 137, 20);
			contentPanel.add(txtValor);
			txtValor.setColumns(10);
		}
		{
			JPanel panelBotones = new JPanel();
			panelBotones.setLayout(new FlowLayout(FlowLayout.RIGHT));
			getContentPane().add(panelBotones, BorderLayout.SOUTH);
			{
				JButton btnPagar = new JButton("Pagar");
				btnPagar.setActionCommand(PAGAR);
				btnPagar.addActionListener(this);
				panelBotones.add(btnPagar);
				getRootPane().setDefaultButton(btnPagar);
			}
			{
				JButton btnCancelar = new JButton("Cancelar");
				btnCancelar.setActionCommand(CANCELAR);
				btnCancelar.addActionListener(this);
				panelBotones.add(btnCancelar);
			}
		}
		
		actulizarDatos(pIdentificacion);
	}



	public void actulizarDatos(String pIdentificacion)
	{
		Propietario p = principal.buscarClientePorIdentificacion(pIdentificacion);
		txtNombres.setText(p.getNombres());
		txtApellidos.setText(p.getApellidos());
		txtIdentificacion.setText(p.getIdentificacion());
		try {
			txtSalsdo.setText(p.getCuenta().getSaldo()+"");
		} catch (InstantiationException e) {
			JOptionPane.showMessageDialog(null,"Error al consultar el saldo del cuenta"+"\n"+e.getMessage(),"Error",JOptionPane.ERROR_MESSAGE);
		} catch (IllegalAccessException e) {
			JOptionPane.showMessageDialog(null,"Error al consultar el saldo del cuenta"+"\n"+e.getMessage(),"Error",JOptionPane.ERROR_MESSAGE);
		} catch (ClassNotFoundException e) {
			JOptionPane.showMessageDialog(null,"Error al consultar el saldo del cuenta"+"\n"+e.getMessage(),"Error",JOptionPane.ERROR_MESSAGE);
		} catch (SQLException e) {
			JOptionPane.showMessageDialog(null,"Error al consultar el saldo del cuenta"+"\n"+e.getMessage(),"Error",JOptionPane.ERROR_MESSAGE);
		}
		
		
		txtIva.setText(Float.parseFloat(txtSalsdo.getText())*0.16+"");
		txtTotal.setText(Float.parseFloat(txtSalsdo.getText())+Float.parseFloat(txtIva.getText())+"");
	}
	@Override
	public void actionPerformed(ActionEvent e) 
	{
		
		if(e.getActionCommand().equals(PAGAR))
		{
			principal.pagarCuenta(txtIdentificacion.getText(),Float.parseFloat(txtValor.getText()) ) ;
			dispose();
			JOptionPane.showMessageDialog(null, "Pago realizado !!" , "Pago Realizado",JOptionPane.INFORMATION_MESSAGE);
		}
		if(e.getActionCommand().equals(CANCELAR))
		{
			dispose();
		}
		
	}



	@Override
	public void keyPressed(KeyEvent e) {
	
		
	}



	@Override
	public void keyReleased(KeyEvent e) {
		
		
	}



	@Override
	public void keyTyped(KeyEvent e) {
		if(e.getComponent().equals(txtValor))
		{
			char car = e.getKeyChar();
			
			if(car < '0'||car >'9')e.consume();
				
		}
		
	}

}
